<?php
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.gxgyl.com All rights reserved.

// +----------------------------------------------------------------------
// | Author: Liuyu
// +----------------------------------------------------------------------
declare (strict_types = 1);

namespace app\api\controller;

use app\api\service\passport\Login as LoginService;
use think\facade\Db;

/**
 * 用户认证模块
 * Class Passport
 * @package app\api\controller
 */
class Passport extends Controller {

	public function reg($mobile) {
		//$data = $this->postForm();
		//return $this->renderSuccess([], $mobile);
		$user = Db::name('user')->where('mobile', $mobile)->find();
		if ($user) {
			if ($user['is_activate'] == 0) {
				Db::name('user')->where('user_id', $user['user_id'])->update(['is_activate' => 1]);
				return $this->renderSuccess([], '激活成功');

			}

			return $this->renderError('已激活，请登录');
		} else {

			return $this->renderError('账号不存在');
		
		}
	}
	/**
	 * 登录接口 (需提交手机号、短信验证码、第三方用户信息)
	 * @return array|\think\response\Json
	 * @throws \cores\exception\BaseException
	 * @throws \think\Exception
	 * @throws \think\db\exception\DataNotFoundException
	 * @throws \think\db\exception\DbException
	 * @throws \think\db\exception\ModelNotFoundException
	 */
	public function login() {
		// 执行登录
		$LoginService = new LoginService;
		if (!$LoginService->login($this->postForm())) {
			return $this->renderError($LoginService->getError());
		}
		// 用户信息
		$userInfo = $LoginService->getUserInfo();
		return $this->renderSuccess([
			'userId' => (int) $userInfo['user_id'],
			'token' => $LoginService->getToken((int) $userInfo['user_id']),
		], '登录成功');
	}

	/**
	 * 微信小程序快捷登录 (需提交wx.login接口返回的code、微信用户公开信息)
	 * 业务流程：判断openid是否存在 -> 存在:  更新用户登录信息 -> 返回userId和token
	 *                          -> 不存在: 返回false, 跳转到注册页面
	 * @return array|\think\response\Json
	 * @throws \cores\exception\BaseException
	 * @throws \think\Exception
	 * @throws \think\db\exception\DataNotFoundException
	 * @throws \think\db\exception\DbException
	 * @throws \think\db\exception\ModelNotFoundException
	 */
	public function loginMpWx() {
		// 微信小程序一键登录
		$LoginService = new LoginService;
		if (!$LoginService->loginMpWx($this->postForm())) {
			return $this->renderError($LoginService->getError());
		}
		// 获取登录成功后的用户信息
		$userInfo = $LoginService->getUserInfo();
		return $this->renderSuccess([
			'userId' => (int) $userInfo['user_id'],
			'token' => $LoginService->getToken((int) $userInfo['user_id']),
		], '登录成功');
	}

	/**
	 * 快捷登录: 微信小程序授权手机号登录
	 * @return array|\think\response\Json
	 * @throws \cores\exception\BaseException
	 * @throws \think\Exception
	 * @throws \think\db\exception\DataNotFoundException
	 * @throws \think\db\exception\DbException
	 * @throws \think\db\exception\ModelNotFoundException
	 */
	public function loginMpWxMobile() {
		// 微信小程序一键登录
		$LoginService = new LoginService;
		if (!$LoginService->loginMpWxMobile($this->postForm())) {
			return $this->renderError($LoginService->getError());
		}
		// 获取登录成功后的用户信息
		$userInfo = $LoginService->getUserInfo();
		return $this->renderSuccess([
			'userId' => (int) $userInfo['user_id'],
			'token' => $LoginService->getToken((int) $userInfo['user_id']),
		], '登录成功');
	}
}